/*
 * Copyright 2025 the original author or authors.
 * <p>
 * Licensed under the Moderne Source Available License (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * https://docs.moderne.io/licensing/moderne-source-available-license
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openrewrite.javascript.tree;

public class JsSpace {
    public enum Location {
        ALIAS_PREFIX,
        ALIAS_PROPERTY_NAME_PREFIX,
        ARRAY_LITERAL_ELEMENTS,
        ARRAY_LITERAL_PREFIX,
        ARRAY_LITERAL_SUFFIX,
        ARROW_FUNCTION_PREFIX,
        AS_PREFIX,
        AWAIT_PREFIX,
        BINARY_PREFIX,
        BINDING_ELEMENTS,
        BINDING_INITIALIZER_PREFIX,
        BINDING_ELEMENT_PREFIX,
        BINDING_ELEMENT_PROPERTY_NAME_SUFFIX,
        BINDING_ELEMENT_SUFFIX,
        COMPUTED_PROPERTY_NAME_PREFIX,
        COMPUTED_PROPERTY_NAME_SUFFIX,
        DEFAULT_TYPE_PREFIX,
        DELETE_PREFIX,
        EXPORT_ELEMENTS,
        EXPORT_ELEMENT_SUFFIX,
        EXPORT_FROM_PREFIX,
        EXPORT_PREFIX,
        FOR_OF_LOOP_PREFIX,
        FUNCTION_TYPE_RETURN_TYPE_PREFIX,
        FUNCTION_TYPE_PARAMETERS,
        FUNCTION_TYPE_PREFIX,
        FUNCTION_TYPE_PARAMETERS_SUFFIX,
        IMPORT_ELEMENTS,
        IMPORT_ELEMENT_SUFFIX,
        IMPORT_FROM_PREFIX,
        IMPORT_INITIALIZER_PREFIX,
        IMPORT_NAME_SUFFIX,
        IMPORT_PREFIX,
        IMPORT_CLAUSE_TYPE_ONLY_PREFIX,
        OBJECT_BINDING_DECLARATIONS_PREFIX,
        OBJECT_BINDING_PREFIX,
        PROPERTY_ASSIGNMENT_NAME_SUFFIX,
        PROPERTY_ASSIGNMENT_PREFIX,
        SCOPED_VARIABLE_DECLARATIONS_PREFIX,
        SCOPED_VARIABLE_DECLARATIONS_SCOPE_PREFIX,
        SCOPED_VARIABLE_DECLARATIONS_VARIABLE_SUFFIX,
        SHEBANG_PREFIX,
        TAG_SUFFIX,
        TEMPLATE_EXPRESSION_PREFIX,
        TEMPLATE_EXPRESSION_SPAN_PREFIX,
        TEMPLATE_EXPRESSION_SPAN_SUFFIX,
        TUPLE_ELEMENT,
        TUPLE_ELEMENT_SUFFIX,
        TUPLE_PREFIX,
        TYPEOF_PREFIX,
        TYPE_DECLARATION_NAME_PREFIX,
        TYPE_DECLARATION_INITIALIZER_PREFIX,
        TYPE_DECLARATION_PREFIX,
        TYPE_OPERATOR_PREFIX,
        UNION_PREFIX,
        UNION_TYPE_SUFFIX,
        INTERSECTION_PREFIX,
        INTERSECTION_TYPE_SUFFIX,
        UNKNOWN_PREFIX,
        UNKNOWN_SOURCE_PREFIX,
        VARIABLE_DECLARATION_PREFIX,
        VOID_PREFIX,
        TYPE_INFO_PREFIX,
        TYPE_REFERENCE_PREFIX,
        NAMESPACE_DECLARATION_PREFIX,
        NAMESPACE_DECLARATION_KEYWORD_PREFIX,
        IMPORT_SPECIFIER_PREFIX,
        IMPORT_SPECIFIER_IMPORT_TYPE_PREFIX,
        TYPE_LITERAL_PREFIX,
        TYPE_LITERAL_MEMBERS_PREFIX,
        TYPE_LITERAL_MEMBERS_SUFFIX,
        INDEXED_SIGNATURE_DECLARATION_PREFIX,
        INDEXED_SIGNATURE_DECLARATION_PARAMETERS_PREFIX,
        INDEXED_SIGNATURE_DECLARATION_PARAMETERS_SUFFIX,
        INDEXED_SIGNATURE_DECLARATION_TYPE_EXPRESSION_PREFIX,
        FOR_BODY_SUFFIX,
        FOR_INIT_SUFFIX,
        FOR_ITER_SUFFIX,
        FOR_IN_LOOP_PREFIX,
        TYPE_QUERY_PREFIX,
        ARRAY_BINDING_PATTERN_PREFIX,
        ARRAY_BINDING_PATTERN_ELEMENTS_PREFIX,
        ARRAY_BINDING_PATTERN_ELEMENTS_SUFFIX,
        EXPR_WITH_TYPE_ARG_PREFIX,
        EXPR_WITH_TYPE_ARG_PARAMETERS,
        EXPR_WITH_TYPE_ARG_PARAMETERS_SUFFIX,
        TEMPLATE_EXPRESSION_TAG_SUFFIX,
        TEMPLATE_EXPRESSION_TYPE_ARG_PARAMETERS,
        TEMPLATE_EXPRESSION_TYPE_ARG_PARAMETERS_SUFFIX,
        TEMPLATE_EXPRESSION_TEMPLATE_SPAN_SUFFIX,
        TAGGED_TEMPLATE_EXPRESSION_PREFIX,
        CONDITIONAL_TYPE_PREFIX,
        CONDITIONAL_TYPE_CONDITION,
        CONDITIONAL_TYPE_CONDITION_SUFFIX,
        INFER_TYPE_PREFIX,
        INFER_TYPE_PARAMETER_PREFIX,
        TYPE_PREDICATE_PREFIX,
        TYPE_PREDICATE_ASSERTS_PREFIX,
        TYPE_PREDICATE_EXPRESSION_PREFIX,
        LITERAL_TYPE_PREFIX,
        SATISFIES_EXPRESSION_PREFIX,
        SATISFIES_EXPRESSION_TYPE_PREFIX,
        IMPORT_TYPE_PREFIX,
        IMPORT_TYPE_TYPEOF_SUFFIX,
        IMPORT_TYPE_QUALIFIER_PREFIX,
        IMPORT_TYPE_TYPE_ARGUMENTS,
        IMPORT_TYPE_TYPE_ARGUMENTS_SUFFIX,
        EXPORT_DECLARATION_PREFIX,
        EXPORT_DECLARATION_TYPE_ONLY_PREFIX,
        EXPORT_DECLARATION_MODULE_SPECIFIER_PREFIX,
        EXPORT_SPECIFIER_PREFIX,
        EXPORT_SPECIFIER_TYPE_ONLY_PREFIX,
        NAMED_EXPORTS_PREFIX,
        NAMED_EXPORTS_ELEMENTS_PREFIX,
        NAMED_EXPORTS_ELEMENTS_SUFFIX,
        EXPORT_ASSIGNMENT_PREFIX,
        EXPORT_ASSIGNMENT_EXPRESSION_PREFIX,
        INDEXED_ACCESS_TYPE_PREFIX,
        INDEXED_ACCESS_TYPE_INDEX_TYPE_SUFFIX,
        INDEXED_ACCESS_TYPE_INDEX_TYPE_PREFIX,
        INDEXED_ACCESS_TYPE_INDEX_TYPE_ELEMENT_SUFFIX,
        ASSIGNMENT_OPERATION_PREFIX,
        ASSIGNMENT_OPERATION_OPERATOR_PREFIX,
        ASSIGNMENT_OPERATION_OPERATOR,
        MAPPED_TYPE_PREFIX,
        MAPPED_TYPE_PREFIX_TOKEN_PREFIX,
        MAPPED_TYPE_VALUE_TYPE,
        MAPPED_TYPE_VALUE_TYPE_SUFFIX,
        MAPPED_TYPE_SUFFIX_TOKEN_PREFIX,
        MAPPED_TYPE_KEYS_REMAPPING_PREFIX,
        MAPPED_TYPE_KEYS_REMAPPING_TYPE_PARAMETER_SUFFIX,
        MAPPED_TYPE_MAPPED_TYPE_PARAMETER_PREFIX,
        MAPPED_TYPE_MAPPED_TYPE_PARAMETER_ITERATE_PREFIX,
        MAPPED_TYPE_KEYS_REMAPPING_NAME_TYPE_SUFFIX,
        MAPPED_TYPE_READONLY_PREFIX,
        MAPPED_TYPE_QUESTION_TOKEN_PREFIX,
        TYPE_TREE_EXPRESSION_PREFIX,
        LAMBDA_ARROW_PREFIX,
        FUNCTION_TYPE_CONSTRUCTOR_PREFIX,
        TYPE_QUERY_TYPE_ARGUMENTS,
        TYPE_QUERY_TYPE_ARGUMENTS_SUFFIX,
        TRAILING_TOKEN_PREFIX,
        TRAILING_TOKEN_EXPRESSION_SUFFIX,
        WITH_PREFIX,
        WITH_BODY_SUFFIX,
        IMPORT_MODULE_SPECIFIER_PREFIX,
        IMPORT_CLAUSE_PREFIX,
        IMPORT_CLAUSE_NAME_SUFFIX,
        NAMED_IMPORTS_PREFIX,
        NAMED_IMPORTS_ELEMENTS_PREFIX,
        NAMED_IMPORTS_ELEMENTS_SUFFIX,
        IMPORT_ATTRIBUTES_PREFIX,
        IMPORT_ATTRIBUTES_ELEMENTS_PREFIX,
        IMPORT_ATTRIBUTES_ELEMENTS_SUFFIX,
        IMPORT_ATTRIBUTE_PREFIX,
        IMPORT_ATTRIBUTE_VALUE_PREFIX,
        IMPORT_TYPE_ARGUMENTS_AND_ATTRIBUTES_SUFFIX,
        IMPORT_TYPE_ARGUMENTS_AND_ATTRIBUTES,
        IMPORT_TYPE_ATTRIBUTES_TOKEN_SUFFIX,
        IMPORT_TYPE_ATTRIBUTES_END_SUFFIX,
        IMPORT_TYPE_ATTRIBUTES_PREFIX,
        IMPORT_TYPE_ATTRIBUTES_ELEMENTS,
        IMPORT_TYPE_ATTRIBUTES_ELEMENTS_SUFFIX,
        TYPE_OPERATOR_EXPRESSION_PREFIX,
        FUNCTION_CALL_PREFIX,
        FUNCTION_CALL_FUNCTION_SUFFIX
    }
}
